package com.vast.admin.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vast.system.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@ApiModel(value="com.vast.admin.entity.Company")
@Data
@TableName(value = "company")
public class Company extends SuperEntity implements Serializable {
    /**
     * 备注
     */
    @TableField(value = "remark")
    @ApiModelProperty(value="备注")
    private String remark;

    /**
     * 工商注册号
     */
    @TableField(value = "reg_code")
    @ApiModelProperty(value="工商注册号")
    private String regCode;

    /**
     * 组织机构代码
     */
    @TableField(value = "org_code")
    @ApiModelProperty(value="组织机构代码")
    private String orgCode;

    /**
     * 税务登记证号
     */
    @TableField(value = "tax_code")
    @ApiModelProperty(value="税务登记证号")
    private String taxCode;

    /**
     * 法人代表姓名
     */
    @TableField(value = "legal_person")
    @ApiModelProperty(value="法人代表姓名")
    private String legalPerson;

    /**
     * 法人代表证件号
     */
    @TableField(value = "legal_person_identity")
    @ApiModelProperty(value="法人代表证件号")
    private String legalPersonIdentity;

    /**
     * 法人代表证件类型或经办人证件类型，与“legalPersonIdentity”要匹配，默认为“0”。 0-居民身份证 1-护照 B-港澳居民往来内地通行证 C-台湾居民来往大陆通行证 E-户口簿 F-临时居民身份证
     */
    @TableField(value = "legal_person_identity_type")
    @ApiModelProperty(value="法人代表证件类型或经办人证件类型，与“legalPersonIdentity”要匹配，默认为“0”。 0-居民身份证 1-护照 B-港澳居民往来内地通行证 C-台湾居民来往大陆通行证 E-户口簿 F-临时居民身份证")
    private String legalPersonIdentityType;

    /**
     * 法人代表手机号或经办人手机号
     */
    @TableField(value = "legal_person_mobile")
    @ApiModelProperty(value="法人代表手机号或经办人手机号")
    private String legalPersonMobile;

    /**
     * 联系手机必填，为CA年检抽查时联系使用
     */
    @TableField(value = "contact_mobile")
    @ApiModelProperty(value="联系手机必填，为CA年检抽查时联系使用")
    private String contactMobile;

    /**
     * 联系邮箱
     */
    @TableField(value = "contact_mail")
    @ApiModelProperty(value="联系邮箱")
    private String contactMail;

    /**
     * 地址
     */
    @TableField(value = "address")
    @ApiModelProperty(value="地址")
    private String address;

    /**
     * 上上签证书申请状态（证书申请状态 1：新申请 2：申请中 3：超时 4：申请失败 5：成功 6：失败重试 -1：无效的申请（系统异常） 0：taskId不存在或已过期）
     */
    @TableField(value = "bestsign_token_status")
    @ApiModelProperty(value="上上签证书申请状态（证书申请状态 1：新申请 2：申请中 3：超时 4：申请失败 5：成功 6：失败重试 -1：无效的申请（系统异常） 0：taskId不存在或已过期）")
    private Integer bestsignTokenStatus;

    /**
     * 上上签申请证书异步taskid
     */
    @TableField(value = "bestsign_task_id")
    @ApiModelProperty(value="上上签申请证书异步taskid")
    private String bestsignTaskId;

    /**
     * 上上签账号
     */
    @TableField(value = "bestsign_account")
    @ApiModelProperty(value="上上签账号")
    private String bestsignAccount;

    /**
     * 企业名称
     */
    @TableField(value = "name")
    @ApiModelProperty(value="企业名称")
    private String name;

    @ApiModelProperty(value="签章路径")
    @TableField("signature_path")
    private String signaturePath;

    @ApiModelProperty(value="合同编号地区编码")
    @TableField("contract_code")
    private String contractCode;

    @TableField("bestsign_cert_type")
    private String bestsignCertType;

    @TableField("bestsign_cert")
    private String bestsignCert;

    @ApiModelProperty(value="付费方式")
    @TableField("payment_method")
    private Integer paymentMethod;

    @ApiModelProperty(value="公司类型")
    @TableField("type")
    private Integer type;

    @ApiModelProperty(value="创建者所属企业id")
    @TableField("company_id")
    private Long companyId;

    @ApiModelProperty(value="付费类型（1按合同模板付费2按合同金额区间付费 3按合同金额阶级付费）")
    @TableField("payment_type")
    private Integer paymentType;

    @ApiModelProperty(value="是否在贸仲注册（0-没有 1-已注册）")
    @TableField("register_status")
    private String registerStatus;

    @ApiModelProperty(value="状态")
    @TableField("status")
    private Integer status;

    @TableField(exist = false)
    private List<CompanyPaymentType> companyPaymentTypes;

    private static final long serialVersionUID = 1L;

    public static final String COL_REMARK = "remark";

    public static final String COL_REG_CODE = "reg_code";

    public static final String COL_ORG_CODE = "org_code";

    public static final String COL_TAX_CODE = "tax_code";

    public static final String COL_LEGAL_PERSON = "legal_person";

    public static final String COL_LEGAL_PERSON_IDENTITY = "legal_person_identity";

    public static final String COL_LEGAL_PERSON_IDENTITY_TYPE = "legal_person_identity_type";

    public static final String COL_LEGAL_PERSON_MOBILE = "legal_person_mobile";

    public static final String COL_CONTACT_MOBILE = "contact_mobile";

    public static final String COL_CONTACT_MAIL = "contact_mail";

    public static final String COL_ADDRESS = "address";

    public static final String COL_BESTSIGN_TOKEN_STATUS = "bestsign_token_status";

    public static final String COL_BESTSIGN_TASK_ID = "bestsign_task_id";

    public static final String COL_BESTSIGN_ACCOUNT = "bestsign_account";

    public static final String COL_NAME = "name";

    public static final String COL_TYPE = "type";

    public static final String COL_COMPANY_ID = "company_id";

    public static final String COL_PAYMENT_TYPE = "payment_type";

    public static final String COL_REGISTER_STATUS = "register_status";
}